
import 'xe-utils'
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'
import formCreate from '@form-create/element-ui'

export default {

  async install(Vue, options) {
    VXETable.setup({
      size: null, // 全局尺寸
      zIndex: 100, // 全局 zIndex 起始值，如果项目的的 z-index 样式值过大时就需要跟随设置更大，避免被遮挡
      version: 0, // 版本号，对于某些带数据缓存的功能有用到，上升版本号可以用于重置数据
      table: {
        showHeader: true,
        keepSource: false,
        delayHover: 250,
        showOverflow: 'tooltip',
        showHeaderOverflow: 'tooltip',
        showFooterOverflow: 'tooltip',
        highlightCurrentRow: true,
        highlightHoverRow: true,
        highlightCurrentColumn: true,
        highlightHoverColumn: true,
        size: "small",
        resizable: true,
        autoResize: false,
        stripe: true,
        border: true,
        round: false,
        height: "auto",
        rowId: 'f_id', // 行数据的唯一主键字段名
        emptyText: "没有任何数据，请点击刷新或查询加载数据",
        columnConfig: {
          width: "auto"
        },
        radioConfig: {
          trigger: 'cell',
          highlight: true,
        },
        checkboxConfig: {
          strict: true,
          highlight: true,
          range: true,
          trigger: 'cell'
        },
        sortConfig: {
          remote: false,
          trigger: 'default',
          orders: ['asc', 'desc', null],
          sortMethod: null,
          showIcon: true,
        },
        filterConfig: {
          remote: false,
          filterMethod: null
        },
        expandConfig: {
          trigger: 'cell',
          showIcon: true,
          expandAll: true,

        },
        treeConfig: {
          children: 'children',
          hasChild: 'hasChild',
          indent: 20,
          line: true,
          expandAll: true,
          showIcon: true,
          trigger: 'cell'
        },
        tooltipConfig: {
          theme: 'dark',
          enterable: true
        },
        menuConfig: {
          visibleMethod() { }
        },
        editConfig: {
          mode: 'cell',
          trigger: 'click',
          showAsterisk: true,
          showStatus: true,
          showUpdateStatus: true,
          showInsertStatus: true,
          autoClear: true
        },
        importConfig: {
          modes: ['insert', 'covering']
        },
        exportConfig: {
          filename: "导出数据",
          sheetName: "导出数据",
          mode: "all",
          isAllExpand: true,
          modes: ['current', 'selected']
        },
        printConfig: {
          mode: 'all',
          isMerge: true,
        },
        customConfig: {
          storage: {
            visible: true,
            resizable: true
          }
        },
        scrollX: {
          gt: 60
        },
        scrollY: {
          gt: 100
        },
        keyboardConfig: {
          isArrow: true,
          // isDel: true,
          isEnter: true,
          isTab: true,
          isEdit: true,
          isChecked: true,
          enterToTab: true,
        },
      },
      grid: {
        size: 'mini',
        height: 'auto',
        border: true,
        autoResize: true,
        resizable: true,
        stripe: true,
        align: "left",
        showOverflow: "tooltip",
        showHeaderOverflow: "tooltip",
        showFooterOverflow: "tooltip",
        highlightCurrentRow: true,
        highlightHoverRow: true,
        highlightCurrentColumn: true,
        highlightHoverColumn: true,
        zoomConfig: {
          escRestore: true
        },
        pagerConfig: {
          perfect: true
        },
        toolbarConfig: {
          perfect: true
        },
        proxyConfig: {
          autoLoad: true,
          message: true,
          props: {
            list: null, // 用于列表，读取响应数据
            result: 'result', // 用于分页，读取响应数据
            total: 'page.total' // 用于分页，读取总条数
          },
          beforeItem: null,
          beforeColumn: null,
          beforeQuery: null,
          afterQuery: null,
          beforeDelete: null,
          afterDelete: null,
          beforeSave: null,
          afterSave: null
        }
      },
      pager: {
        size: null,
        autoHidden: false,
        perfect: true,
        pageSize: 10,
        pagerCount: 7,
        pageSizes: [10, 15, 20, 50, 100],
        layouts: ['PrevJump', 'PrevPage', 'Jump', 'PageCount', 'NextPage', 'NextJump', 'Sizes', 'Total']
      },
      form: {
        preventSubmit: false,
        validConfig: {
          autoPos: true
        },
        size: null,
        colon: false,
        titleAsterisk: true
      },
      input: {
        size: null,
        transfer: false,
        parseFormat: 'yyyy-MM-dd HH:mm:ss.SSS',
        labelFormat: '',
        valueFormat: '',
        startWeek: 1,
        digits: 2,
        controls: true
      },
      textarea: {
        size: null,
        autosize: {
          minRows: 1,
          maxRows: 10
        }
      },
      select: {
        size: null,
        transfer: false,
        multiCharOverflow: 8
      },
      toolbar: {
        size: null,
        import: {
          mode: 'covering'
        },
        export: {
          types: ['csv', 'html', 'xml', 'txt']
        },
        custom: {
          isFooter: true
        },
        buttons: []
      },
      button: {
        size: null,
        transfer: false
      },
      radio: {
        size: null
      },
      checkbox: {
        size: null
      },
      switch: {
        size: null
      },
      modal: {
        // size: null,
        minWidth: 340,
        minHeight: 200,
        lockView: true,
        mask: true,
        duration: 3000,
        marginSize: 0,
        dblclickZoom: true,
        showTitleOverflow: true,
        storage: false
      },
      list: {
        scrollY: {
          gt: 100
        }
      }
    })

    Vue.use(formCreate)
    Vue.use(VXETable)
  }
}